package com.ruoyi.cs.service;

import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.utils.bean.TransferQueryReqParam;
import com.ruoyi.common.utils.bean.TransferQueryResParam;
import com.ruoyi.common.utils.bean.TransferReqParam;
import com.ruoyi.common.utils.bean.TransferResParam;
import com.ruoyi.common.yyyoupin.bean.SaleResponse;
import com.ruoyi.common.yyyoupin.bean.SaleResponseVo;
import com.ruoyi.cs.domain.*;
import com.ruoyi.cs.domain.vo.TBackPackVo;
import org.springframework.scheduling.annotation.Async;

import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface CommonService {

    /**
     * 根据武器种类获取饰品名称列表
     * @param goodsMold
     * @return
     */
    public List<Map> goodsNameList(String goodsMold);

    /**
     * 箱子列表
     * @return
     */
    public List<Map> boxNameList();

    /**
     * ROLL房列表
     * @return
     */
    public List<Map> rollNameList();

    /**
     * 获取箱子的饰品名称列表
     * @param goodsBelongingId
     * @return
     */
    public List<Map> goodsNameListAll(String goodsBelongingId);

    /**
     * 箱子标题列表
     * @return
     */
    public List<Map> boxtitleNameList(String titleType);

    /**
     * 饰品快速购买接口
     */
    public String quickBuy(TBackPackVo tBackpack);

    /**
     * 人工审核饰品快速购买接口
     */
    public String auditQuickBuy(TBackPackVo tBackpack);


    /**
     * 饰品订单取消接口
     */
    public String buyerCancel(String orderId);

    /**
     * 饰品价格接口
     * @param marketHashNameList
     * @return
     */
    public String priceInfo(List<String> marketHashNameList);

    /**
     * 查询饰品取货的状态
     * @param list
     * @return
     */
    public String qureySteamOrder(List<String> list);

    public String qureySteamOrderYY(String bbId);
    /**
     * 支付充值的状态修改和余额变动
     * @param tRecharge
     * @param flag
     */
    public void czquerySuccess (TRecharge tRecharge, boolean flag);

    /**
     * 轮询：查询取货订单的状态来修改背包记录
     * @param tBackpack
     * @param type
     */
    public void updateBackPolling(TBackpack tBackpack, String type, String delivery,String msg);

    /**
     * 查询饰品价格
     * @param tBackpack
     */
    public void queryPrice(TBackPackVo tBackpack);

    public void queryPriceYY(TBackPackVo tBackpack);

    /**
     *  获取某一个饰品的所有在售
     * @param zbt zbt饰品id
     */
    public boolean  currentlyOnSale(String zbt);

    /**
     * steam交易链接验证接口
     *
     * @param tradeUrl
     * @return
     */
    public Map<String, String> steamInfo(String tradeUrl) throws UnsupportedEncodingException;

    /**
     * 充值校验
     * @param tUser
     * @return
     */
    public BigDecimal rechargeVerification(TUser tUser, BigDecimal czMoney) throws Exception;

    /**
     * 充值成功处理
     * @throws Exception
     */
    public void czSuccessHandle(TRecharge tRecharge,String out_trade_no,String order_no,String paramStr);

    /**
     * 充值失败处理
     * @throws Exception
     */
    public void czFailHandle(TRecharge tRecharge,String out_trade_no,String order_no,String paramStr);


    /**
     * 生产二维码图片
     * @throws Exception
     */
    public String scQrCodeImge(String url) throws Exception;

    public String scQrCodeImgeWeb(String url) throws Exception;

    public TransferQueryReqParam createrTransferQueryReqParam(String orderid);

    public TransferReqParam createTransferReqParam(String orderid, String amount);

    public TBankcardBehalfpay toTBankcardBehalfpayByTransferReqParam(TransferResParam param);

    public TBankcardBehalfpay toTBankcardBehalfpayByTransferQueryResParam(TransferQueryResParam param);

    /**
     * 更新箱子价格
     * @param type
     * @param marketHashNameList
     * @param boxId
     * @param premiumRatio
     * @param stocknum
     * @return
     */
    public boolean batchUpdateBoxGoodsPoolPrice(String type, List<TGoods> marketHashNameList,String boxId,String premiumRatio,String stocknum );

    /**
     * 查询已完成交易的订单ZBT实际报价
     * @param orderId
     */
    public void queryTradedOrder(String orderId);

    public String sign(Map<String, String> params, String secret) ;

    public String signJH(Map<String, String> params, String secret);

    public String signJHNotify(Map<String, String> params, String secret);

    /**
     * 悠悠有品饰品价格接口
     * @param templateHashIds
     * @return
     */
    public List<SaleResponse> priceInfoYY(List<Integer> templateHashIds);

    public List<SaleResponse> priceInfoHashNameYY(List<String> templateHashNames);

    public String auditAuickBuyYY(TBackPackVo tBackpack);

    /**
     * 饰品快速购买接口
     */
    public String quickBuyYY(TBackPackVo tBackpack);

    /**
     * 饰品订单取消接口
     */
    public String buyerCancelYY(String orderId);

    /**
     * @Desc: 获取订单详情接口，同步更新饰品交易价格
     * @author: zz
     * @date: 2024/3/19
     */
    public void queryTradedOrderV2(String orderId);

    /***获取悠悠有品饰品价格信息转义*/
    public List<SaleResponseVo> toSaleResponseVo(List<SaleResponse> list);

    /**查询账号余额**/
    public BigDecimal getAssetsInfo();


}
